package zuoye.考试1;

import java.util.Scanner;

public class NewDemo5 {
    public static void main(String[] args) {
        // 声明输入器
        Scanner input = new Scanner(System.in);
        // 定义两个数组(分别保存学生姓名和学生成绩)
        String[] stuNames = new String[5];
        double[] stuScores = new double[5];
        // 学生成绩之和
        double sum = 0;
        // 使用循环放入数据
        for(int i = 0;i < stuNames.length;i++){
            System.out.println("请输入学生姓名：");
            stuNames[i] = input.next();
            System.out.println("请输入学生成绩：");
            stuScores[i] = input.nextDouble();
            sum += stuScores[i];
        }

        // 对学生成绩数组进行排序(冒泡排序)
        // 外层循环控制比较轮数 array.length - 1
        for(int i = 0;i < stuScores.length - 1;i++){
            // 内层循环控制比较次数 array.length - 1 - i
            for(int j = 0;j < stuScores.length - 1 - i;j++){
                // 比较下标为j和下标为j+1的数，如果为j的数更小，则两数进行交换
                if(stuScores[j] < stuScores[j + 1]){
                    // 声明一个临时变量存储数据
                    double temp = stuScores[j];
                    stuScores[j] = stuScores[j + 1];
                    stuScores[j + 1] = temp;
                    // 姓名绑定成绩
                    String strTemp = stuNames[j];
                    stuNames[j] = stuNames[j + 1];
                    stuNames[j + 1] = strTemp;
                }
            }
        }
        // 最大值
        double max = stuScores[0];
        // 最小值
        double min = stuScores[stuScores.length - 1];
        // 平均分
        double averageScore = sum / stuScores.length;

        for(int i = 0;i < stuNames.length;i++){
            System.out.println("学生姓名：" + stuNames[i] +
                    " 学生成绩：" + stuScores[i] +
                    " 成绩与平均分的差值" +
                    (stuScores[i] - averageScore));
        }
        System.out.println("最高分" + max);
        System.out.println("最低分" + min);
    }
}